<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>

        // then(fn1 , fn2)   可以同时执行成功或者失败的函数
        // catch(fn)    只有失败才会执行
        // finally(fn)    无论成功或者失败都会执行   fn不接受任何参数


        // 注意：
        //    使用then以外的方法，尽量使用链式操作





        const p = new Promise(function (resolve, reject) {
            setTimeout(function () {
                const num = parseInt(Math.random() * 100);
                if (num % 2 === 0) {
                    // alert('中奖了啊')
                    resolve(num)
                }
                else {
                    // alert('没有中奖')
                    reject(num)
                }
            }, 300)
        });


        // 调用的时候
        //    第一种：直接使用then方法，传两个函数
        //    第二种：使用then和catch   必须使用链式操作




        // p
        //     .then(res => {
        //         console.log(res + '成功了');
        //     })
        //     .catch(err => {
        //         console.log(err + '失败了');
        //     })
        //     .finally(() => {
        //         console.log('无论有没有中奖，我中午都要吃饭');
        //     })





        p.then(res => {
            console.log(res + '成功');
        })


        p.catch(err => {
            console.log(err + '失败');
        })


    </script>

</body>

</html>